home *** CD-ROM | disk | FTP | other *** search
/ LOGIC Apps / Logic-APPLE_II_APPS.iso / pc / LOGIC Apple II 5.25" Library - DOS Part 2 / DOS031.dsk / MENU.int < prev    next >
Text File  |  2012-02-16  |  2KB  |  41 lines

  1. 10 REM ****************************
  2. 20 REM *           MENU           * 
  3. 30 REM *     BY GARY A. FOOTE     *
  4. 40 REM ****************************
  5. 50 TEXT : POKE -16298,0:CALL -936:REM SET TO TEXT MODE
  6. 60  POKE 74,0: POKE 75,8: POKE 204,0: POKE 205,8:REM  SET LOMEM TO $800
  7. 70 DIM A$(120),B$(26),C(26):LM= PEEK (74)+ PEEK (75)*256+5:D$="<CTRL-D>":REM      CTL-D
  8. 80 B$="ABCDEFGHIJKLMNOPQRSTUVWXYZ"
  9. 90 REM  INSERT PROGRAM TO WRITE CATALOG INTO MEMORY AND MOVE TO STRING VARIABLE
  10. 100 A$="0300: 38 48 84 00 A0 00 C9 20 B0 02 69 C0 C9 60 B0 02 69 80 C9 80 B0 02 69 40 91 02 E6 02 D0 02 E6 03":GOSUB 1000
  11. 110 A$="0320: 68 A4 00 60 A9 A0 60 48 84 00 A0 00 B1 02 91 04 C8 C0 25 D0 F7 A9 1E 91 04 A4 00 68 60":GOSUB 1000
  12. 120  POKE 2,0: POKE 3,16
  13. 130  POKE 54,0: POKE 55,3: POKE 56,36: POKE 57,3:CALL 1002:REM    TURN ON PRINT ROUTINE
  14. 140 PRINT D$;"NOMON C,I,O":PRINT D$;"CATALOG"
  15. 150 PRINT D$;"PR#0":PRINT D$;"IN#0":REM TURN OFF PRINT ROUTINE
  16. 160 REM  CATALOG NOW IN MEMORY, CALCULATE NUMBER OF PROGRAMS
  17. 170 A= PEEK (2)+ PEEK (3)*256
  18. 180 NUM=(A-4096-19)/38
  19. 190 REM  BUILD MENU
  20. 200 CALL -936: POKE 4,LM MOD 256: POKE 5,LM/256
  21. 210  POKE 2,0: POKE 3,16:CALL 807: POKE 50,63:PRINT A$(4,18);: POKE 50,255: POKE 2,20:CALL 807:REM        TITLE
  22. 220 REM IF FIRST FILE IS TEXT, PUT ON TITLE LINE
  23. 230 IF A$(2,2)#"T" THEN 240:PRINT " ";A$(8, LEN(A$)):GOTO 250
  24. 240 PRINT :PRINT 
  25. 250  POKE 34,2:Y=4116
  26. 260 X=1:FOR Z=1 TO NUM:CALL 807
  27. 270 IF A$(2,2)="T" THEN 290:REM  DO NOT PRINT TEXT FILES
  28. 280 PRINT "[";B$(X,X);"] ";A$(1,2);" ";A$(8, LEN(A$)):C(X)=Y:X=X+1
  29. 290 Y=Y+38: POKE 2,Y MOD 256: POKE 3,Y/256
  30. 300 IF X<22 THEN NEXT Z: POKE 50,63:PRINT "SELECT BY LETTER";
  31. 310 IF Z-1#NUM THEN PRINT " - HIT RETURN FOR MORE";
  32. 320  POKE 50,255
  33. 330 K= PEEK (-16384):IF K<128 THEN 330: POKE -16368,0:IF K=141 THEN 360:K=K-192:IF K>X-1 OR K<0 THEN 330
  34. 340 Y=C(K): POKE 2,Y MOD 256: POKE 3,Y/256:CALL 807:IF A$(2,2)="T" THEN 330:B$=" ":IF A$(2,2)="B" THEN B$="B"
  35. 350  POKE 34,0:CALL -936:VTAB 12:PRINT "NOW LOADING ";A$(8, LEN(A$)):PRINT D$;B$;"RUN ";A$(8, LEN(A$))
  36. 360 CALL -936:X=1:IF Z-1#NUM THEN 300: POKE 34,0:END 
  37. 1000 REM  MONITOR WRITE ROUTINE
  38. 1010 A$( LEN(A$)+1)=" NE88AG": POKE 60,LM MOD 256: POKE 61,LM/256:X= LEN(A$)+LM: POKE 62,X MOD 256: POKE 63,X/256: POKE 66,0: POKE 67,2:CALL -468
  39. 1020  POKE 72,0:CALL -144
  40. 1030 RETURN 
  41.